1. Field of the Invention
The present invention relates to an optical disk playback apparatus and a data playback method therefor, and more particularly to an improved optical disk playback apparatus and data playback method therefor which ensure continuity of data on a buffer memory even if the apparatus once stops and resumes a sequence of operations for reading data from an audio CD (Compact Disk), decoding the read data, and storing the decoded data in the buffer memory.
2. Description of the Related Art
The CD is known as a representative optical recording medium for recording music data and the like. FIG. 1 shows a data format on the CD.
The data structure within a CD comprises a frame synchronization area, a sub-code area, and a data and parity area, wherein a minimum block of the data structure is referred to as a frame, and one basic block is formed of 98 frames. Each frame is comprised of a 24-bit frame synchronization signal and a 14-bit sub-code synchronization signal which serve as time information, and 32 symbols which include an upper set and a lower set. The upper set includes 12 upper data symbols and 4 parity symbols for C2 error code correction, and the set includes 12 lower data symbols and 4 parity symbols for C2 error code correction.
Frame 1 has a frame synchronization signal set therein which is comprised of “1000000000001000000000010” of a 24-bit length. A sub-code area comprises a sub-code synchronization signal S0 in frame 1, and a sub-code synchronization signal S1 in frame 2. Sub-code synchronization signal S0 is set to be “0100000000000” of a 14-bit length, while sub-code synchronization signal S1 is set to be “00000000010010” of a 14-bit length. The sub-code area in each of frame 3 to frame 29 has a length of 8 bits which are comprised of P, Q, R, S, T, U, V, W bits. Therefore, the sub-code area in frame 3 is comprised of data P1, Q1, R1, S1, T1, U1, V1, W1, and the same rule applies correspondingly to the following, so that the sub-code area in frame 98 is comprised of data P96, Q96, R96, S96, T96, U96, V96, W96.
In each frame, 1-bit data P corresponds to a music locate function, and 1-bit data Q corresponds to a program function for playing music in a preset order. The six bits R to W are used to set data for display and other purposes.
Assuming a string of data Q retrieved from respective frames 1 to 98, data Q in frame 1 comprises sub-code synchronization signal S0, and data Q in frame 2 comprises sub-code synchronization signal S1. Then, four bits Q1 to Q4 are set as an area for controlling; four bits Q5 to Q8 as an area for addressing; 72 bits Q9 to Q80 as a data area; and 16 bits Q81 to Q96 as a CRC (Cyclic Redundancy Check) area.
Further, 72 bits Q9 to Q80 is comprised of eight bits from Q9 which represent a “track number”; the next eight bits which represent an “index”; the next 24 bits which define an area indicative of a relative time from the head of the disk, which is broken down into the first eight bits representative of “minutes,” the next eight bits representative of “seconds,” and the next eight bits representative of the “number of frames”; the next eight bits which are all set at “0”; and the next 24 bits which define an area indicative of an absolute time from the head of the disk, which is broken down into the first eight bits representative of “minutes,” the next eight bits representative of “seconds,” and the next eight bits representative of “frame,” where particular data are set in the respective bits.
The foregoing 32 symbols are interleaved, wherein four bytes of parity bits are added to 24 contiguous bytes of data, and the resulting data am rearranged such that they are distributed over a plurality of frames.
Another four bytes of parity bits are added to each frame comprised of 28 bytes of the interleaved data to complete the aforementioned 32-byte frame of data which is recorded on a CD in accordance with EFM (Eight-to-Fourteen Modulation).
Specifically, for recording on the CD, a C2 code is added to original data for error correction, and the resulting data is distributed over a plurality of frames, each of which is subsequently provided with a C1 code for error correction. For playing back the thus recorded CD, the C1 code is first used to detect and correct errors, in the order reverse to the above. Then, after the error correction using the C1 code, the data is arranged back in the original order, and data in erroneous frames, which could not be corrected by the C1 code, are distributed and corrected for errors by the C2 code. The C1 code is capable of correcting two bytes of errors within 28 bytes, whereas the C2 code is capable of correcting four bytes of errors within 28 bytes.
In the CD having the foregoing recording/playing system, data is read from the disk faster than actually played music, the data read from the disk is decoded, and the resulting decoded data is once stored in a buffer memory.
The data once stored in the buffer memory is subsequently read from the buffer memory for playing music based on the read data. When an audio CD used in such a music play system does not include the synchronization data in decoded data, it is necessary to ensure continuity of the data on the buffer memory for once stopping an operation of storing the decoded data read from the disk in the buffer memory and later resuming the operation.
Otherwise, when particular data on the buffer memory is updated, and decoded data subsequent thereto is continuously stored in the buffer memory, it is necessary to ensure correct restoration of the updated data on the buffer memory.
For playing music recorded on a CD, data stored in the buffer memory is sequentially read therefrom, wherein no recognition is made as to temporary stop of a data write into the buffer and an update of data on the buffer memory which should have been performed by the time the data is read from the buffer memory.
For acquiring data for storage in the buffer memory from data read from a disk, the data read from the disk must undergo EFM frame synchronization, EFM demodulation, and the aforementioned CIRC (Cross Interleaved Reed-Solomon Code) decoding.
For recording data on a CD, a predefined conversion table is utilized to convert 8-bit values to 14-bit values for recording, that is, EFM modulation. In other words, 14-bit data recorded on a CD has a content of 8-bit data. Therefore, for playing back data from a CD, EFM demodulation is required for converting the modulated 14-bit data to 8-bit data.
The aforementioned EFM frame synchronization entails detecting a 24-bit EFM SYNC pattern “100000000001000000010” to determine the head of a 588-bit EFM frame, and separating one sub-code symbol and 32 main data symbols from the 588-bit EFM frame, where one symbol is comprised of 14 bits.
The sub-code synchronization in turn entails determining the head of a sub-code frame in each of 98 EFM frames from sub-code SYNC patterns S0, S1, and performing the EFM demodulation to produce 96-byte sub-code data per sub-code frame, when including even data separations.
The CIRC decoding based on sub-code symbols P to Q generally employs an interleave RAM (Random Access Memory) which have 2,048 address s, each of which provides an 8-bit data width. In response to a bit dock generated by a PLL (Phase Locked Loop) from a signal read from the disk, data read from the disk is captured, which involves the EFM frame synchronization, EFM demodulation, separation of sub-codes, and storage of main data into the interleave RAM.
The operations associated with the capture of sub-code data and writing of main data into the interleave RAM do not rely on the bit clock but on a clock from a quartz oscillator in response to an event signal generated from the bit clock.
On the other hand, the clock from the quartz oscillator is relied on for the CIRC decoding, writing of decoded data into the buffer memory, reading of data from the buffer memory, and a music play.
If a bit clock fluctuates due to uneven rotations of a disk during a play of music from the CD, the data rate also fluctuates when data read from the disk is stored in the interleave RAM, resulting in a difference in data rate between the CIRC decoding performed at a fixed rate based on the clock from the quartz oscillator and a read of decoded data. For this reason, the interleave RAM is provided with an FIFO (First-In First-Out) area as jitter margin for absorbing a difference in data rate, if any, due to the bit clock operation.
The FIFO operation is provided for the interleave RAM with the intention of correctly reading data at a data rate upon reading even if the data rate fluctuates during a write. Since a certain address area is set for use as a jitter margin between write addresses and read addresses, data is read from addresses spaced from write addresses by at least the jitter margin area.
Specifically, referring to FIG. 2 for describing a conventional disk playback method, in a system which has a FIFO area as the jitter margin in an interleave RAM, a delay between a storage of data read from a disk into the interleave RAM and a read of decoded data after the CIRC decoding fluctuates during the FIFO operation.
On the other hand, since the FIFO operation is not applied to the sub-code data separated in the EFM demodulation, unlike main data, time/position information, which is Q-code data included in the sub-code data, as well as decoded data include phase fluctuations due to the FIFO operation.
In a system configured to store decoded data in a buffer memory, when a storage of decoded data is once stopped and resumed, or when particular data on the buffer memory is updated by decoded data and subsequent decoded data is stored in sequence, a data read position on the disk is moved to a target position based on the time/position information provided by the Q-code, such that decoded data is stored in the buffer memory from a predetermined location. However, since decoded data from an audio CD is nothing but audio data and does not include the synchronization signal, no determination can be made from the decoded data itself on the position of decoded data from which the data is fetched into the buffer memory.
In addition, when the phase relative to the sub-code synchronization signal is relied on to determine the position of decoded data from which data is fetched into the buffer memory, the ability for playback cannot be ensured because of fluctuations in phase due to the FIFO operation.
Referring now to FIGS. 3A to 3C provided for describing another example of conventional disk playback method, FIG. 3A illustrates one method which is typically employed in the art. As described in JP-P2000-105978A, this method involves comparing decoded data with data on a buffer memory to determine predetermined decoded data. Alternatively, a method employed therein cancels fluctuations in phase due to the FIFO operation. The ability for playing back data is ensured by establishing the synchronization of sub-code information, which is a synchronization signal and time/position information, with the decoded data, and storing these data in the buffer memory.
As illustrated in FIG. 3B, another method involves comparing a write address at which data read from a particular location on a disk, on a frame in target time/position information, is stored in an interleave RAM, with a read address of the interleave RAM from which decoded data is retrieved, and generating a timing signal when a match is found between both addresses.
As illustrated in FIG. 3C, a further method involves generating a timing signal indicative of a timing at which target decoded data is delivered from the number of FIFO stages and throughput in the CIRC decoding.
JP-60-136061-A discloses a method of providing sub-code data synchronized with main data by storing sub-code symbols as well in an interleave RAM and managing the addresses of the sub-code symbols in a similar manner to the main data.
Each of the foregoing examples shows an exemplary system which has a FIFO area in an interleave RAM for absorbing jitter. In a method disclosed in JP-9-17124-A, a bit clock is generated by a PLL from a signal read from a disk, and data read from the disk is fetched in response to the bit clock, specifically, through EFM frame synchronization, EFM demodulation, separation of sub-codes, and storage of main data into an interleave RAM, followed by CIRC decoding and writing of decoded data into a buffer memory. A clock from a quartz oscillator is relied on to read data from the buffer memory and play music.
As described above, in one of the conventional disk playback apparatuses which employs a method that involves comparing decoded data with data on the buffer memory to determine predetermined decoded data, a larger amount of hardware is required as a larger amount of data are to be compared. This apparatus also implies a problem of failing to eliminate the possibility of erroneous determination even if a larger amount of data is compared.
In the apparatus which employs a method that involves comparing a write address at which data read from a disk is stored in an interleave RAM, with a read address of the interleave RAM from which decoded data is retrieved, the comparison of the write address with the read address in the interleave RAM requires holding and comparison of 11-bit data, giving rise to a problem that a large amount of hardware is needed.
The method which involves generating a timing signal indicative of a timing at which target decoded data is delivered from the number of FIFO stages and throughput in the CIRC decoding has a problem of an increased number of bits required in a counter which is used to measure a large delay value.
In the method of providing sub-code data synchronized with main data by storing sub-code symbols as well in an interleave RAM and managing the addresses of the sub-code symbols in a similar manner to the main data, even if 8-bit sub-code symbols can be stored in the interleave RAM of 8-bit data width, the sub-code synchronization signals S0, S1 cannot be represented in bits, giving rise to a problem of losing the sub-code synchronization signals S0, S1 upon storage of symbols in the interleave RAM.
Fluctuations in data rate, at which data is fetched, due to uneven rotations of the disk are absorbed in a buffer memory which stores decoded data, so that the decoded data and sub-code data are free from fluctuations in phase. A drawback of such a system is an increased burden which is charged on a microprocessor and software due to requirements for monitoring and controlling data stored in the buffer memory, because the data rate, at which decoded data is stored in the buffer memory, is not fixed but is fluctuated due to uneven rotations of the disk and the like, as compared with a system which handles decoded data at a fixed rate.
Also, a buffer memory for storing decoded data is essential in such a system for playing music, so that the system cannot adopt a simplified strategy of playing music from decoded data without intervention of the buffer memory.